1. Field of the Invention
This invention relates generally to data processing systems and, more particularly, to data processing systems having a plurality of data processing units. Data processing systems with more than one data processing unit can have the performance of the system limited by the ability of the data processing units to communicate with other portions of the data processing system over a data processing system bus.
2. Discussion of the Related Art
In data processing systems having a plurality of data processing units, a principal limitation in performance can be the capability of the system components to communicate within the system, especially when the principal communication path is a system bus. For example, data signal groups required by the individual data processing units must be extracted from the main memory unit and transferred to the requesting data processing unit. The system bus eliminates a multiplicity of signal paths coupling the main memory with each data processing unit, but can result in conflict in demand for access to the system bus by the data processing unit.
In data processing systems, the greatest limitation has generally been considered the speed with which the data processing unit can execute instructions. So crucial has this capability been viewed that to describe this feature, an expression, MIPS (i.e. millions of instructions per second), has been developed to describe a figure of merit for a data processing system. A multiplicity of techniques have been developed to improve performance of the individual data processing unit. Among those techniques are: implementation of the cache memory technique to attempt to ensure requested data signal groups are immediately accessible by the data processing system; implementation of the pipelining technique, which is a technique for dividing instruction execution operations requiring a given time interval into a plurality of component sub-instruction steps, each sub-instruction step requiring a smaller time sub-interval for execution so that the completion of an instruction can occur after each sub-interval; look-ahead techniques to insure to the extent possible that, for a sequence of instructions involving a branch instruction, both the sequence and the branch instruction are available to the data processing unit; etc. In addition, technology improvements such as reduced gate delays and increased gate density (which can reduce media propagation delays) can also be employed.
Another technique that has been employed to increase the execution ability of a data processing system is accomplished through the use of multiple data processing units. Several system architectures have been used to integrate the operation of a plurality of data processing units. One architecture includes a plurality of interface units, typically entitled system interface units, that are coupled to the data processing unit. These interface units can issue requests for data, can invalidate data and can perform a plurality of procedural and overhead functions permitting the associated data processing unit(s) to concentrate on instruction execution. The interface units typically require a large amount of logical apparatus to perform the needed procedural functions. None-the-less, because data processing units have become so effective for the reasons described above, the ability of data processing system to distribute data to the data processing units or to receive data from the data processing units has become, in many data processing systems, the limiting factor bounding the speed of the data processing system to execute programs.
A need has therefore been felt for apparatus and method for providing a plurality of data processing units in a data processing system that do not require elaborate interface apparatus to incorporate data processing unit into the data processing system. Furthermore, a need has been felt for a data processing system in which the ability to distribute data signal groups to the individual data processing units does not limit the performance of the data processing system.